﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PSE.Tools.Util.Entidades;

namespace PSE.Tools.CadastroMensagens.Entidades
{
    public class TipoMensagem : IEntidade
    {
        #region [ Propriedades ]
        /// <summary>
        /// Código do Tipo da Mensagem
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// Descrição do Tipo da Mensagem
        /// </summary>
        public string Descricao { get; set; }

        /// <summary>
        /// Indica se a propriedade está válida
        /// </summary>
        public bool EntidadeValida { get { return MensagensValidacoesEntidades().Count() == 0; } }
        #endregion [ Propriedades ]

        #region [ Métodos ]
        /// <summary>
        /// Lista de Mensagens de validações da Entidade.
        /// </summary>
        public IEnumerable<ValidacaoEntidade> MensagensValidacoesEntidades()
        {
            if (string.IsNullOrEmpty(Descricao))
                yield return new ValidacaoEntidade { Mensagem = "Descrição não pode estar em branco", NomePropriedade = "Descricao", TituloPropriedade = "Descrição" };

            if (!string.IsNullOrEmpty(Descricao) && Descricao.Length > 30)
                 yield return new ValidacaoEntidade { Mensagem = "Descrição não pode conter mais do que 30 caracteres", NomePropriedade = "Descricao", TituloPropriedade = "Descrição" };
        }
        #endregion [ Métodos ]
    }
}
